// token.rs
#[derive(Debug, Clone, PartialEq)]
pub enum TokenKind {
   Number(f64),

   Plus,
   Minus,
   Asterisk,
   Slash,
   Caret,  // ^
   LParen, // (
   RParen, // )

   Eof,
}

#[derive(Debug, Clone, PartialEq)]
pub struct Token {
   pub kind: TokenKind,
}

impl Token {
   pub fn eof() -> Self {
      Self {
         kind: TokenKind::Eof,
      }
   }
}
